home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / misc / TCS.lha / TCS / examples / sources / TriBuf&BltFRP.s < prev    next >
Text File  |  2000-04-13  |  3KB  |  119 lines

  1. *******************************************************************************
  2. * Blitter-assisted FullRes conversion and triple buffering example
  3. *******************************************************************************
  4. * INFO    shows how to work with a Blitter-assisted FullRes triple
  5. *    buffered display
  6. * NOTE    - experiment with the display definition parameters
  7. *    - LMB to exit anytime
  8. *******************************************************************************
  9.  
  10.     machine    68020
  11.  
  12.     include    INCLUDES:libraries/tcs.i
  13.     include    INCLUDES:libraries/tcs_lib.i
  14.  
  15.  
  16.  
  17. *******************************************************************************
  18. * custom display definitions
  19. *******************************************************************************
  20.  
  21. DSPLWD    =    320    ;our TCS display width and
  22. DSPLHT    =    256    ;height in 140 ns pixels
  23. SCRWD    =    320    ;TCS screen width and
  24. SCRHT    =    256    ;height in pixels
  25. DSPLX0    =    $81*4    ;display start
  26. DSPLY0    =    $2c    ;position (SHRES pixels)
  27. DSPLX1    =    DSPLX0+DSPLWD*4    ;display end
  28. DSPLY1    =    DSPLY0+DSPLHT    ;position (SHRES pixels)
  29. DSPLBRTNS    =    256    ;max brightness
  30. GFXCTXT    =    0
  31. CWBTM    =    0
  32. CWTOP    =    0
  33. CWRT    =    0
  34. CWLF    =    0
  35. VDOMODE    set    TCS_VM_RGBW | TCS_VMf_FullRes ;TCS display video mode
  36. VDOMODE    set    VDOMODE | TCS_VMf_TriBuf | TCS_VMf_BltFRP
  37.  
  38.  
  39.  
  40. *******************************************************************************
  41. * code start
  42. *******************************************************************************
  43.  
  44.     include    /includes/shl_strtup.i
  45.  
  46.  
  47.  
  48. *******************************************************************************
  49. * init
  50. *******************************************************************************
  51.  
  52. _PrgInit    move.w    #0,ccr    ;OK!
  53.     rts
  54.  
  55.  
  56.  
  57. *******************************************************************************
  58. * main
  59. *******************************************************************************
  60.  
  61. _PrgMain    move.l    #Lev3Hndlr,([_VBR.l],$6c.w) ;set level3 autovector
  62.     move.w    #$c020,$dff09a    ;set INTENA.VERTB
  63.  
  64. .lp    movea.l    DIAdr,a0    ;our display
  65.     move.w    #SCRWD/2,d0    ;centre x coordinate
  66.     move.w    #SCRHT/2,d1    ;centre y coordinate
  67.     move.w    #50,d2    ;radius
  68.     move.b    #255,d3    ;color
  69.     CALLTCS    DrwCrcl2    ;mark screen with a rectangle
  70.  
  71.     movea.l    DIAdr,a0    ;render FullRes screen
  72.     CALLTCS    BltFRPass0    ;to make changes visible
  73.  
  74.     movea.l    DIAdr,a0    ;acknowledge screen
  75.     CALLTCS    TriUpd    ;rendering completion
  76.  
  77.     btst.b    #6,$bfe001
  78.     bne.s    .lp    ;if not LMB...
  79.     rts
  80.  
  81.  
  82.  
  83. *******************************************************************************
  84. * cleanup
  85. *******************************************************************************
  86.  
  87. _PrgClnUp    rts
  88.  
  89.  
  90.  
  91. *******************************************************************************
  92. * Blitter-assisted FullRes & triple buffer handler (level 3 interrupt handler)
  93. *******************************************************************************
  94.  
  95. Lev3Hndlr    movem.l    d0-d1/d7/a0-a1/a5-a6,-(sp)
  96.     move.w       $dff01e,d7    ;get INTREQR
  97.  
  98.     btst.l    #6,d7
  99.     beq.s    .ChkVERTB    ;if not BLIT...
  100.     CALLTCS    BltFRPassHndlr    ;perform FullRes conversion
  101.  
  102. .ChkVERTB    btst.l    #5,d7
  103.     beq.s    .exit    ;if not VERTB...
  104.  
  105.     movea.l    DIAdr,a0    ;perform screen
  106.     CALLTCS      TriSwp    ;swapping
  107.  
  108. .exit    movem.l    (sp)+,d0-d1/d7/a0-a1/a5-a6
  109.     move.w    #$70,$dff09c    ;clr INTREQ.BLIT/VERTB/COPER
  110.     rte
  111.  
  112.  
  113.  
  114. *******************************************************************************
  115. * data
  116. *******************************************************************************
  117.  
  118.     include    /includes/dat.i
  119.